Digital data written to Compact Discs (CD), and Digital Video optical Discs (DVD) undergoes a well-defined series of processing steps including interleaving, Reed-Solomon encoding, and Eight-to-Fourteen-Modulation (EFM) encoding in the case of CDs or eight-to-sixteen encoding (known as EFM-Plus), for DVDs. International standards applicable to CDs are defined in the CD Colored Book series (Red Book, Yellow Book, and Green Book, for example) and also available as ISO/IEC standards. The DVD standard is defined in a series of books owned by the DVD Consortium (now known as the DVD Forum), available through Toshiba Co. of Japan. In particular, reference should be made to the ISO/IEC publication CD-Information technology—Data interchange on read-only 120 mm optical data disks (CD-ROM), ISO/IEC 10149, 2nd ed., 1995, and to DVD Specifications for Read-Only Disc, Part 1 Physical Specifications Version 1.0, August 1996, respectively.
Additional information on data processing in optical media can be found in Chaps.3 and 4 of The Compact Disc Handbook, 2nd ed., by Ken C. Pohlmann, published by A-R Editions Inc., Madison, Wis., 1992 and Chaps. 5 and 9 of Principles of Digital Audio, 3rd ed., by Ken C. Pohlmann published by McGraw-Hill Inc., New York, 1995.
In co-responding patent applications U.S. patent application Ser. No. 08/869,209 and U.S. Provisional Patent Application No. 60/038,080 to the present Applicant, which are herein incorporated by reference, methods for producing and reading bistable (ambiguous) data on pressed and recordable optical media are described.
It is difficult to faithfully reproduce the locations and values of bistable data without access to specially modified mastering or recording equipment. Therefore, bistable data on a disc cannot be readily reproduced on illicit copies of the disc. Software that checks for the presence of bistable data can determine if a particular disc is genuine (has bistable data of the correct values in the correct locations on the disc) or is counterfeit (no bistable data, or bistable data in the wrong locations or having the wrong values). Furthermore, the pattern of bistable data locations and values can represent a key to be used in decrypting the contents of a genuine disc. This key cannot be extracted from a counterfeit disc.
Definitions
The following definitions are used throughout this application:
“symbol”—a data byte or a channel word, depending on the context
“data symbol”—8-bit data that is represented on a disc as a channel word
“data value”—a value of a data symbol read from a disc (after demodulation and Reed-Solomon error detection)
“bistable symbol”—a symbol that, if read more than once, returns more than one data value
“channel word”—the 14-bit (EFM) or 16-bit (EFM Plus) binary representation of a data symbol
“companion symbols”—a pair of data symbols whose respective channel words differ solely by a shift of a single ‘1’ bit by one bit position
“main symbol”—the first companion symbol
“alternate symbol”—the second companion symbol
“augmented symbol”—a channel word with a ‘1’ that if shifted to the left by ½ bit position corresponds to one data symbol and if shifted to the right by ½ bit position corresponds to the companion symbol of the first symbol representation. Special hardware and software are required to produce an augmented symbol.
“displaced symbol”—a channel word that does not violate run-length rules, but has no corresponding data symbol. Essentially, a channel word comprised of one of the 9 unused EFM symbols.
“substituted symbol”—a channel word that has been replaced by another channel word representing a different data symbol different than that represented by the original channel word.
“erasure”″—a potentially erroneous symbol whose location is known.
“error”—an erroneous symbol whose location is not known.
Reference is now made to FIG. 1 which is a high level block diagram illustration of the method of data detection and decoding as implemented for optical data storage for CD-ROM (referenced 10). In the case of a CD (FIG. 1), data 12 being read is detected and demodulated (step 14) using EFM tables. The demodulated data 12a then passes through the two stages of Reed-Solomon error detection, known as C1 and C2 decoding and correction, (steps 16 and 18, respectively). The Reed-Solomon error detection can correct up to two errors. That is, at each error correction step, the demodulated data 12a is corrected (referenced 12b and 12c). Finally, the CD-ROM reader firmware makes the corrected data 12c accessible to the computer program as data 12d. Based on the number and type of errors, if any, reported by the C2 decoder, and in-compliance with possible Error Recovery Modes specified by the accessing software, the drive firmware may or may not actually permit data to leave the drive.
The output during each data processing stage (steps 14–20) includes data (12a, 12b, 12c and 12d) plus flags, referenced 22a, 22b, 22c and 22d, which indicate the status (such as the error condition) of the data 12.
The method of data detection and decoding for DVD-ROM 30, illustrated in FIG. 2, is similar to that described for a CD-ROM 10 (FIG. 1). Briefly, data 32 is detected and demodulated (step 34) using EFM Plus tables. The demodulated data 32a then passes through the two stages of Reed-Solomon error detection, known as PI and PO decoding and correction, (steps 36 and 38, respectively), before being read by the DVD reader firmware (step 40) allowing the data 32d to be accessible to the computer program.
The object of the present and referenced inventions is to write one or more augmented symbols on a disc that will be read by ordinary readers as bistable symbols. This requires that each of the companion symbols derived from an augmented symbol pass untouched through Reed-Solomon error correction.
Reference is now made to FIG. 3 which schematically illustrates a single bistable symbol, designated DAB, and its associated C1 and C2 codewords, referenced 42 and 44, shown horizontally and vertically, respectively.
Bistable symbol DAB represents the data read from the augmented symbol previously written. Bistable symbol DAB can be read as either of its two companion symbols, DA (main) and DB (alternate). Each C1 codeword contains 28 data symbols and 4 parity symbols, and each C2 codeword contains 24 data symbols and 4 parity symbols. For the purposes of clarity, only the bistable symbol DAB and the relevant parity symbols are shown.
In accordance with the Cross Interleaved Reed-Solomon Coding (CIRC), any given data symbol is contained in exactly one C1 codeword and exactly one C2 codeword. The C1 and C2 codewords which contain DAB (hereinafter referred to as primary codewords), 42 and 44, respectively, intersect at the bistable symbol DAB.
For the purposes of example, the four parity symbols, referenced PA1, PA2, PA3 and PA4, of the primary C1 codeword 42 and the four parity symbols, referenced QA1, QA2, QA3 and QA4, of the primary C2 codeword 44 are erased as shown. These erasures are effectively generated by displacing the EFM symbols of the respective parity symbols.
The four parity symbols (QA1, QA2, QA3 and QA4) of the primary C2 codeword 44 are also contained in four additional C1 codewords, designated 45, 46, 47 and 48, referred to as secondary C2 codewords. In order to prevent the erased primary C2 codeword parity symbols (QA1, QA2, QA3 and QA4) from being corrected by their companion secondary C1 codewords (45, 46, 47 and 48), the four parity symbols, generally designated PA11–PA14, PA21–PA24, PA31–PA34 and PA41–PA44, of each of the four secondary C1 codewords, are also erased by the aforementioned displacement method. Thus, associated with the bistable data symbol DAB, there are two primary codewords 40 and 42, respectively, having erased parity symbols, and four secondary C1 codewords (45, 46, 47 and 48), also having erased parity symbols.
As described hereinabove, when a CD-ROM disc, for example, is read, the data is detected by an optical detector, demodulated 14-bits to 8-bits (step 14), C1 codewords are assembled and decoded (step 16), C2 codewords are assembled and decoded (step 18), the sector data is assembled (step 20), and the data 12d is made available to the outside world. Errors detected at any stage are fixed if possible. If the error is not fixed, the faulty data is flagged (22a–22d) and passed on to the next stage.
Reference is now made to FIG. 4, which schematically illustrates the processing steps undertaken whenever a sector containing a bistable symbol is read, which may be summarized as follows:
a) The optical detector generates one of the companion symbols from the augmented channel word (step 60).
b) The EFM demodulator decodes the corresponding 8-bit symbol value (step 62). An error is not generated since both of the bistable symbol values are legitimate.
c) The demodulator attempts to decode the aforementioned displaced EFM symbols (step 64). An error flag is generated for each undecodable symbol (erasure) and passed on to the C1 decoder (step 66).
d) Since the primary C1 codeword has four erasures, the C1 decoder cannot correct any of the various symbols in the codeword and in particular will not alter the value of the bistable symbol. The bistable symbol therefore may pass through C1 decoding untouched. The C1 decoder may flag the components of the C1 codeword before passing them on to the C2 decoder (step 68).                e) Since the secondary C1 codewords also have four erasures, the C1 decoder cannot correct the erasures in the Q parity symbols of the primary C2 codeword. The C1 decoder may-flag the components of the secondary C1 codeword before passing them on to the C2 decoder (step 70).        
f) The primary C2 codeword has four uncorrected erasures plus a flagged bistable symbol. Thus, the C2 decoder may not be able to correct the bistable symbol. Therefore, the C2 decoder may flag the C2 codeword as being uncorrectable (step 72).
g) The drive firmware reads the C2 flags for a sector (step 74). If there are uncorrectable C2 errors (known as E32 errors), the drive firmware may refuse to pass the sector data on to the host software. In this case, it is impossible to detect bistable symbols.
Even if the data is read, different drives behave differently if E32 errors are generated. For example, many drives slow down while trying to correct the errors, and others return corrupted data. In short, the behavior of drive firmware in response to E32 errors is often unpredictable.